﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq.SqlClient;
using System.Web;

using ecommerce2011.Common;
using ecommerce2011.Models;

namespace ecommerce2011.BusinessInterface
{
    public class GridSystem
    {
        public GridProductViewModel GetGridProductViewModel(int page, int records, string sort, string txtCadenaBusqueda, string selCriterioBusqueda)
        {
            var fnResult = new GridProductViewModel();
            var edmx = new ProductosEcommerceEntities();
            var queryResults = edmx.Product.Where(p => p.ProductId == 1);
            if (selCriterioBusqueda != null && selCriterioBusqueda == "codigo")
            {
                long codigo = long.Parse(txtCadenaBusqueda);
                queryResults = edmx.Product.Where(p => p.ProductId == codigo);
            }
            else if (selCriterioBusqueda != null && selCriterioBusqueda == "nombre")
            {
                queryResults = edmx.Product.Where(p => p.Name.Contains(txtCadenaBusqueda));
            }
            else if (selCriterioBusqueda != null && selCriterioBusqueda == "descripcion")
            {
                queryResults = edmx.Product.Where(p => p.Show.Contains(txtCadenaBusqueda));
            }
            fnResult.TotalRecords = queryResults.Count();
            switch (sort)
            {
                case "ShowDate":
                    queryResults = queryResults.OrderBy(r => r.ShowDate);
                    break;
                default:
                    queryResults = queryResults.OrderBy(r => r.ProductId);
                    break;
            }

            fnResult.Productos = queryResults.Skip(page * records).Take(records).ToList();
            return fnResult;
        }
    }
}